home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 2,801 to 2,900 / aol-file-protocol-4400-2801-to-2900.zip / AOLDLs / C++ Files Library / MRDiim, 3D World Shell / MRDiim.sit / MRDiim / MRConstruction.h < prev    next >
Text File  |  1994-12-19  |  3KB  |  109 lines

  1. // defines a post within the world, shown as a post
  2. typedef struct {float myX; float myY;} ChartPost;
  3. // use as a filler
  4. const    ChartPost    ZeroZeroPost={0,0};
  5. // defines a wall
  6. typedef struct {ChartPost CP1; ChartPost CP2; } ChartWall;
  7. // defines a bitmapped wall
  8. typedef struct {ChartPost CP1; ChartPost CP2 ; short pictID; } ChartBitmap;
  9. // define directions
  10. enum    chartDirection {forward=1,rightside,backside,leftside};
  11. // max viewable distance
  12. const    MaxViewDistance = 10;
  13. // consts for diim grid view
  14. const    GridX = 150;
  15. const    GridY = 150;
  16. // size of a step
  17. const    float HumanStep = .5;
  18. // holds ratio of gradX to gridY
  19. const    ViewRatio = 1;
  20. // how man "units" the viewer is is height
  21. const    UnitHeight = 2;
  22. // half way marks
  23. const    HorizonLine = (GridY/2);
  24. const    MeridianLine = (GridX/2);
  25. // ratio of factor for expanding ticks.  fyi...    1.57 = half pi
  26. const    float MyPi = 3.1415926535;
  27. const    float MyHalfPi = 1.5707963268;
  28. const    HorizSpan = (HorizonLine / 1.5707963268);
  29. const    MerdSpan = (MeridianLine / 1.5707963268);
  30.  
  31. const    WidthOfWorld = 10;
  32. const    HeightOfWorld = 10;
  33.  
  34. inline    float    Min(float A,float B)
  35. {
  36.     if(A<B)
  37.         return(A);
  38.     else
  39.         return(B);
  40. } ;
  41.  
  42. inline    float    Max(float A,float B)
  43. {
  44.     if(A>B)
  45.         return(A);
  46.     else
  47.         return(B);
  48. } ;
  49.  
  50. inline    ChartPost    DiffChartPost(ChartPost CP1,ChartPost CP2)
  51. {
  52.     ChartPost    CP={0,0};
  53.     
  54.     CP.myX=CP1.myX-CP2.myX;
  55.     CP.myY=CP1.myY-CP2.myY;
  56.     
  57.     return(CP);
  58.  
  59. inline ChartPost AveChartPost(ChartPost CP1,ChartPost CP2)
  60. {
  61.     ChartPost    CP={(CP1.myX+CP2.myX)/2,(CP1.myY+CP2.myY)/2};
  62.     return(CP);    
  63. }
  64.  
  65. class MRConstruction: public MRRachet
  66. {
  67.     short        myBuildType;  
  68.     void        *myStructure;    // data structure of fixed location
  69.     void        *myActors;        // data structure of relative locations
  70.     float        oDistance;      // distance of MRC to the point of view
  71.     char        myWallType;        // type of item (used to color)
  72.     static    float    maxDist;    // used in determining order of drawing
  73.     static    float    nextDist;
  74. public:
  75.         MRConstruction(short Number=0,Boolean toMark=false);
  76. virtual    ~MRConstruction(void);
  77.     
  78.     // override
  79. virtual    void        *NewRachet(short Number,Boolean toMark);
  80. virtual    void        ZapRachet(Ptr toBeZapped);
  81. virtual void        AddConstruction(ChartPost theCP, char wallType); // post
  82. virtual void        AddConstruction(ChartWall theCW, char wallType); // wall
  83. //virtual void        PrepConstruction(chartDirection    myDirection,short myDist);
  84. virtual void        DoConstruction(void);
  85. virtual void        FindActors(ChartPost myself,float facing,Boolean halfCircle);
  86. virtual void        PrepScanStart(void);
  87. virtual void        PrepScan(void);
  88. virtual void        ScanConstruction(void);
  89. virtual Boolean        ProposedMove(ChartPost    myMove);
  90. } ;
  91.  
  92. void        DrawPost(ChartPost CP);
  93. void        DrawWall(ChartPost CP1,ChartPost CP2,char wallType);
  94.  
  95. Point        FindFooter(ChartPost CP);
  96.  
  97. ChartPost        FindActor(ChartPost target,float rads, Boolean halfCircle);
  98.  
  99. void        NormalizeAngle(float &facing, Boolean &halfCircle);
  100.  
  101.  
  102. ChartPost    ReturnChartPost(float myX,float myY);
  103. ChartWall    ReturnChartWall(ChartPost CP1,ChartPost    CP2);
  104.  
  105. ChartWall    LowHigh(ChartPost lowCP,ChartPost highCP);
  106.  
  107.  
  108.